The present invention generally relates to telephonic services and routing technologies and, more specifically, to a system for automatically routing telephone calls and optionally providing information about a client location.
In the increasingly competitive business world, there have been various attempts to automatically route telephone calls made to an xe2x80x9c1-800xe2x80x9d number or equivalent for a local store, franchise, branch, dealer or service company (henceforth, service location), whose service area encompasses the caller location for the product or service associated with the xe2x80x9c1-800xe2x80x9d number. For example, a person would dial 1-800-Italian from any telephone in the United States, and the phone would ring at the MyPizza (a fictitious business) service location that delivers pizza to the location of the calling telephone.
There have been several previous simplistic attempts to automatically route calls to a service location that is geographically proximate to the caller. These routing technologies are based on routing the incoming call to a location with the same telephone area code and prefix as the originating call, to the same 5-digit zip code, to all zip codes that have the same city name, or a combination of the above. There are many different terms used to describe the various components of a 10-digit telephone number. In the telecommunications industry, it is called the NPA-NXX-XXXX, where the NPA is the area code, the NXX is the prefix or exchange and the XXXX is the suffix or line number. For example, in the 10-digit telephone number 619-942-9999, 619 is the NPA or area code; 942 is the NXX, prefix or exchange; and 9999 is the XXXX, suffix or line number. Usually all telephone numbers with the same area code and prefix are serviced by the same wire center. A wire center is the geographical area serviced by a single telephone company office. The wire center is usually one switch, but can be multiple switches, and usually provides service to about ten exchanges. By definition of the telephone companies, wire centers do not overlap.
A. Prior Routing System Structure
The earth is a sphere, and any point on its surface can be defined by a latitude and longitude spherical coordinate system developed several centuries ago. Using this coordinate system, spherical trigonometry, and a computer, it is possible to calculate the distance between any two locations on the earth and determine if one location lies within a specified radius of another or determine if a location is contained within an irregular service area defined as a spherical polygon.
Several years ago, ATandT instituted the technology of passing the calling telephone number along the telephone network, by use of Automatic Number Identification (ANI), to facilitate billing. The xe2x80x9cCaller IDxe2x80x9d feature, available on some telephone networks, utilizes the ANI technology to identify the telephone number of the calling party. Since a modern telephone switch is just a special purpose computer, it is a simple process for the switch handling the call to look up in a record table (of over one hundred million records) the calling telephone number with an assigned service location telephone number and route the call to the service telephone number.
However, there were some fairly formidable problems that needed to be solved before this routing process could be a commercially viable and practical service. The first problem was initially determining the latitude and longitude of every telephone number in the United States and keeping them updated when twenty percent of the consumer population moves every year and businesses are continually opening and closing locations. The second problem was performing the multitude of spherical trigonometric calculations which is several orders of magnitude beyond today""s most powerful computers that are required to create the calling telephone number to the service location telephone number tables and to keep them updated in a constantly changing environment.
Several key databases and technologies are necessary to solve these problems. The United States Census Bureau, as part of the 1990 census, built a national latitude and longitude cartographic map of the United States called TIGER (Topological Integrated Geographical Encoding and Referencing) that contains almost every street link in the United States. A street link is a street segment intersected by other streets at each end. The TIGER record for all street links contains the latitude and longitude coordinates at each end of the street segment accurate to within plus or minus thirty feet and, for most street segments, the starting and ending address ranges for each side of the street. Where the Census Bureau did not complete the address ranges, private companies have filled in the gaps and are updating TIGER as new streets are built.
In the past, the U.S. Postal Service (the xe2x80x9cPost Officexe2x80x9d) divided the U.S. into postal delivery areas called zip (zone improvement plan) codes to help automate the routing of mail. At the nine digit level (called xe2x80x9czip+4xe2x80x9d), these zip codes usually correspond to a single side of a street link. In addition to geographically dividing the United States into small postal delivery areas, the Post Office also set standards for the naming of places and streets. For direct mailers to get discounts, they had to standardize their mailing addresses to match the Post Office""s naming conventions and provide a zip+4 code. To facilitate the process of postal address standardization and zip+4 coding, the Post Office provides a national Zip+4 Address Coding Guide and has certified several commercially available software packages that correctly address standardize and zip+4 code 99 percent plus of the address records on a Post Office test file.
Recently, the Post Office and some private companies have matched the Post Office""s Zip+4 Address Coding Guide with TIGER and have created files containing zip+4 codes with latitude and longitude centroids (a zip+4 centroid is the approximate geographical mid-point of a zip+4 code). This type of file is referred to as a zip+4 latitude and longitude centroid file 100 (FIG. 1a). These centroids are accurate 95 percent of the time to within plus or minus 105 feet in relation to a house or business receiving mail at a street address assigned to a given zip+4 code. Today, it is a very reliable and economical process to address standardize and zip+4 code a list identifying physical locations, such as a master list of phone numbers of the present invention.
Other changes and improvements in telecommunications technology were needed to make the automated telephone call routing process a commercially viable and practical service. Improvements in the telecommunication infrastructure in the U.S. have changed the telecommunication cost structure. Presently the cost of a telephone call from Los Angeles to New York is about the same as for a call from Los Angeles to San Diego. Therefore, the physical location of central routing system hardware and facilities is no longer critical, or in other words, can be anywhere in the continental U.S.
Another improvement of telecommunications technology is the advent of Geographic Information Systems, commonly called GIS. These systems allow the aggregation and display of almost any data for any area, any size or shape, anywhere in the United States by interactive maps. The popularity of these systems has lead to the development of sophisticated techniques and algorithms to handle geographically based information. Of primary interest is the linking of the geographic information to telephone numbers, especially at the 10-digit level.
The complex process of spherical trigonometric distance calculations on billions of possible permutations has been alleviated by making the process less computer intensive. Instead of performing complex trigonometric spherical calculations, a technique that is less than one-thousandth as computer intensive is used. This technique is based on doing a polyconic projection from each service location and performing simple two dimensional distance squared tests. There are approximately 68.9404 miles per degree latitude. However, the miles per degree longitude varies with the latitude. At a given latitude, the miles per degree longitude is equal to the cosine of the latitude multiplied by 68.9404. By using the service location as the latitude point and knowing the latitude and longitude of calling points, it is easy to obtain a delta latitude and longitude, translate them into miles, and perform a simple distance calculation, i.e., xe2x80x9cdistance=SQRT(X**2+Y**2)xe2x80x9d. This polyconic projection technique results in a distance calculation error of approximately 12 feet for two locations that are 100 miles apart at 40 degrees latitude. However, additional reduction of the computational effort is necessary to have a practical, efficient, and commercially viable routing process for high call volume applications.
B. Prior Routing System Operation
Previous technologies for routing xe2x80x9c1-800xe2x80x9d telephone number calls to a service location have one or more of the following three problems:
(1) Many such routing systems are very coarse in their level of precision and cannot handle small service areas with specifically defined franchise territory boundaries like those for pizza delivery franchises. The franchise territory may be, for example, an irregularly shaped polygon. A much more precise system is desired that is accurate to within about 105 feet rather than previous systems having accuracies to within about 10 miles. Such a system would utilize very precise measurement determinations made possible by knowing the physical location on the earth, most typically expressed as a latitude and longitude, of nearly every non-mobile telephone in the United States. Other coordinate systems could be used in other countries.
(2) Another problem in routing systems is that they divide the United States into many large arbitrarily defined areas and there is no ability to route a call to the closest service location if the closest location is not located in the same artificially created area as the caller. In many instances, a caller located near the border of an exchange area or 5-digit zip code is much closer to a service location with a different zip code or telephone prefix than the one to which it is routed. A seamless system is desired that does not use artificially created areas such as telephone wire centers, telephone prefixes, or 5-digit zip codes where calls can only be routed within their area. A business may want an option of choosing to route a call to the closest branch whose service area may be defined by either a predetermined radius, e.g., 5 miles, that encompasses the location of the caller or by a predetermined irregularly shaped polygon that encompasses the location of the caller. Furthermore, a business may want an option of choosing to route a call to any branch whose service area may be defined by either a predetermined radius that encompasses the location of the caller or by an irregularly shaped polygon that encompasses the location of the caller, rather than the closest branch.
(3) Finally, known routing systems often rely on third party telephone directories that are always inaccurate due to publishing, key entry, and optical character recognition (OCR) scanning time lags and which do not include unlisted numbers. Over 30 percent of the U.S. telephone numbers are unlisted, which includes public pay phones and multiple lines going into businesses and households where only one line is listed. The information in such directories becomes rapidly outdated as the locations and related information of listed consumers and businesses change. Thus, a system is desired that correctly routes a much higher percentage of calls than the previous systems. In the U.S., such a system would require direct access to the ATandT universe of telephone numbers. Such a system would preferably utilize daily updated and unlisted telephone numbers and involve passing information between regulated telephone databases maintained by the telephone companies and client databases maintained by third parties.
The three deficiencies discussed above result in lower customer service and satisfaction, higher costs because of manual exception handling for calls that cannot be routed due to a variety of reasons, costs of misrouting, and high on-going maintenance costs. Manual exception handling generally requires operator intervention in the xe2x80x9c1-800xe2x80x9d call.
Other previous systems require the consumer to enter their zip code or telephone prefix on the Touch Tone keypad in response to voice prompting from the system. Based on the caller-entered data on the keypad, the telephone call is forwarded to a destination telephone. Other similar systems will simply inform the consumer, by a voice message, of another telephone number for the local dealer, which must be manually dialed rather than forwarding the call automatically. A system is desired that does not require any additional customer interaction or input. Such a system would be totally automatic by utilizing, at a minimum, the 10-digit telephone numbers in the standard telephone packet that can only be accessed and utilized by regulated telephone companies on a national basis. The telephone packet includes the complete origin and destination telephone numbers.
The basis of an automatic telephone routing system must include a means to automatically identify the telephone number of the calling party. Such a system is disclosed by Kaplan, U.S. Pat. No. 5,163,087. This system translates an Automatic Number Identification (ANI) of the calling party into a customer database key previously defined by the called party. The database key, e.g., customer account number, is then provided to the called party instead of the ANI information such that a computer at the called business can process the key to look up and present customer information to an agent of the business. This system assumes that the caller has called this business at a previous time to provide information to the agent of the business to create a customer record or other similar information. The Kaplan system delivers the database key to one business location rather than a plurality of service locations throughout the country. The delivery of the database key to the business requires an Integrated Services Digital Network (ISDN) or similar facility, which is an additional burden for the business.
An automatic routing system should not need to deliver a database key or message to the final destination, but would merely utilize the ANI information as an index to a table containing partitions of a country into small geographic areas, such as postal service zip+4 codes. These partitions would be further utilized to access one of a plurality of service locations that may be anywhere within the country. A current system for telephone call routing is described in U.S. Pat. No. 4,757,267 to Riskin. Riskin employs automatic number identification (ANI) for routing calls from a caller to a dealer located within the same area code and prefix (first six digits of a 10-digit telephone number, the xe2x80x9c6-digit numberxe2x80x9d) as the caller. Because the area identified by the 6-digit number is fairly large and there may be several dealers within the area, the dealer location is usually selected from a list of several locations based on random selection, or weighted percentage assigned to each location. Alternatively, the caller is presented with a list of possible dealer locations for the large geographic area because the system does not know which service locations are closer than the others. Riskin uses the 6-digit number to determine the location of both the caller and the service location. Riskin assumes the location of the caller to be the location of the central office switch that services the caller""s 6-digit exchange (which can be 0 to 5 miles from its true location), and assumes the location of the dealer location to be the location of the central office switch that services the dealer location""s 6-digit exchange (which can be 0 to 5 miles from its true location) utilizing a coordinate system that is accurate to plus or minus 2300 feet. What is desired is a system that uses all ten digits of the calling and service location telephone numbers and the physical street address of the location of the numbers in connection with a GIS-type database (utilizing a coordinate system and associated coordinate data that is accurate to within 30 feet) to provide geographic precision to within 105 feet for the location of the calling and destination telephones.
Consequently there is a need for an automated telephone routing system that provides the ability to reduce costs by routing a very high percentage of calls made to a single national telephone number without any human intervention; the marketing advantage for a client of a single, easy to remember, toll free or nominal fee national telephone number; geographically precise results; and the ability of businesses to define custom service areas around each servicing location of any desired size and shape. Preferably, a client may define each location""s service area as an area with a radius of any size or a polygon of any size and shape. A client can intermix radius and polygon definitions as well as have service areas be overlapping or non-overlapping.
Frequently, a caller may not need to have a telephone call actually completed to the service business location, but rather, the caller needs information about the business. For example, the caller may want to determine the location of the three closest service locations, or more specifically, the caller desires to know that the business is still open, or has inventory of a desired item, and so forth.
C. Prior Voice Response Unit Utilization
Traditionally, businesses, non-profit organizations and government agencies with one to tens of thousands of service locations provided customers multiple telephone number points of contact with usually at least one telephone number for each service location, department and individual. This put a major burden on customers and prospective customers to find, remember, dial and be connected to the correct intra-entity telephone number for the location or services desired. In the new world of electronic commerce, these entities have started promoting vanity telephone numbers as their preferred single initial point of customer contact. These vanity numbers are easy to remember telephone numbers, e.g., 1-800-FLORIST, that are selected by a business. The vanity telephone numbers typically have xe2x80x9c800xe2x80x9d, xe2x80x9c888xe2x80x9d or xe2x80x9c900xe2x80x9d as area codes or local exchange prefixes xe2x80x9c555xe2x80x9d or xe2x80x9c950xe2x80x9d.
Based on the large volume of calls going to these vanity numbers, customer demands for extended support hours of seven days a week and 24 hours a day, and the goal of reduced telephone busy and on-hold times has resulted in many vanity advertisers answering vanity number calls with Voice Response Units (VRU). The proliferation of vanity numbers and the utilization of the VRU have created a need to automate, through what is now called intelligent call processing, a higher percentage of calls being answered by the VRU.
In this context, automated intelligent call processing is defined as the capture of network-provided data, such as ANI and dialed number identification service (DNIS), and caller-provided data, such as data entered by Dual Tone Multi-Frequency (DTMF) through a Touch Tone telephone key pad or the caller speaking directly, at the VRU. The intelligent VRU further can decipher, validate, process and fulfill the caller""s request by playing pre-recorded messages, creating call specific test messages and speaking them to the caller, and/or routing and connecting the caller to the servicing location. In contrast, semi-automated call processing means that components of the customer request can be automated through intelligent call processing but some portions of the request still require support during the call by a live operator.
A further category of automated intelligent call processing includes the situation where the client does not desire to use the voice response capabilities but uses the automated routing features of the system. In such a situation, the VRU may be replaced by a network terminating point interface (NTPI) box which does not have voice/speech features.
For the VRU or NTPI box to handle a higher percentage of caller requests, more information must be immediately accessible to the VRU or NTPI box. This requires the real-time access to many different databases, stored on different computer systems. Recent advances in computer networking technology, networking standards, increases in speed and bandwidth, and reduction in costs for long distance data communications have made wide-area networking a common practice. This is demonstrated in part by the variety of computer-interface applications supported by computer network services, such as CompuServe(copyright), America Online(copyright), Microsoft Network(trademark) and the Internet.
In the national telecommunications network with its nearly 200 million access points, most with only basic Touch Tone or old rotary telephone input and output capability, VRU or NTPI switch database access has been primarily limited to client proprietary customer databases indexed by telephone number. This type of access works acceptably for many applications with existing customer calls. However, for new customers, new businesses or new applications that service different target markets, these internal databases are too sparse in coverage to make VRU database lookup applications economical. On the other hand, there are national databases, such as the GDT Zip+4 Latitude and Longitude files, that do not contain a telephone number. Accordingly, these databases, and derivatives of these databases that do not contain a telephone number field, have not been utilized in VRU telephone call processing applications.
The missing link in making almost unlimited amounts of data immediately available to the VRU or NTPI box is creating a standardized, precise and universal database linkage key that can be assigned to all telephone numbers in the United States and U.S. territories. This key needs to act as a direct and/or translator linkage mechanism between the telephone number and spatial, geographic, and client service location databases, where the service area may be of any defined size and shape. Since the common trait shared among the above-mentioned databases is their geographic/spatial location, definition and/or relationship, what is needed is a robust solution of a universal hierarchical geographic/spatial linkage key that is termed herein, the Spatial Key. Utilizing the Spatial Key, it becomes practical to automate many VRU applications that provide the caller with information and/or connect the caller with a servicing location.
The option of choosing from among several embodiments of the spatial linkage or spatial key linkage with a VRU or NTPI box would be desirable. These include: (1) Use of a master table having caller-provided telephone numbers with an associated spatial key and an automatically generated client table linking spatial keys to client service location information. (2) Use of a single table linking telephone numbers to other telephone numbers when routing speed is very important or where compatibility is necessary with the current telecommunications network. Telecommunications networks generally require long lead times to incorporate new technology. Because such an embodiment uses a single table, it would be the simplest embodiment to implement from the telecommunications network perspective. (3) Use of real-time spatial processing to associate precise caller locations to precise servicing locations in situations when high call volumes and transaction processing speed are not an issue and/or where computer storage is a limited resource and the application does not require a Spatial Key linkage to other Spatial key indexed databases. Such a system would be the simplest embodiment to update and the required files could be independently maintained.
Prior attempts at real-time call processing have lacked precision. Typical prior attempts use the area code and exchange numbers (6 digits) rather than all ten digits of a U.S. telephone number. For example, the Riskin patent uses Bellcore""s VandH coordinate system to identify the caller location and the service location to a plus or minus five mile precision. This prior system does not use a precise service area definition for the service location, but rather uses a client-defined search radius around the caller location. However, the location of the caller is defined by the VandH coordinates of the telephone switch to which the caller""s telephone is physically connected, so the search radius is actually around each telephone switch. The search radius is used to access a VandH coordinate interleaved index to a service location file to get a list of potential service locations. Calculations are then made to determine the distance between the location of the caller""s switch and the location of the switch for each of the potential service locations. This information is used to develop a final list of service locations.
What is desired is a system that can precisely determine the location of the caller or caller-provided telephone number and of the service location. Also desired is the ability for the client to precisely define a service area around each service location. Further desired is the capability to quickly route the telephone call, such that the caller is not aware that it is happening. The imprecise distance calculation from the caller location to the service location used by prior systems for determining servicing location(s) is no longer required for this purpose. The ability of the system disclosed herein to precisely determine the distance between the above two mentioned points provides a valuable item of information for further selecting between multiple caller servicing locations and providing information regarding the proximity of a servicing location to the caller.
Also desired is the ability to utilize an instantaneous location, defined by coordinates, of a mobile or portable telephone to identify one or more caller servicing locations by use of a real-time process in the system. The real-time process may calculate one or more service locations for the caller in real-time (on-the-fly). In one embodiment, the system would obtain the coordinates, such as latitude and longitude, of the mobile telephone from the telephone network. Other embodiments may use other coordinate types or processes other than a real-time process.
In all of the desired embodiments, it would be preferable to utilize a service area, associated with a client service location, of any desired size and shape. Further, it would be desirable to optionally allow the client to provide service area information to the caller. Such an option would preferably utilize an NTPI box having voice/speech features linked to a file comprising client service information by a service location ID or telephone number, for example. The optional client service location information could include, for example, providing the caller with such things as the address(es) of the servicing location(s) for mailing, picking up and/or dropping off something to the selected servicing location; providing the caller with pre-stored micro-area directions to the service location(s); or providing the caller with the location""s open hours, drop-off times or pick-up times.
The present invention includes a system and method for automatically processing telephone calls by either connecting the caller to a servicing location and/or providing the caller information regarding the servicing location.
The present invention provides a method of routing all published and unpublished telephone numbers, including unlisted numbers, secondary unpublished business lines, mobile phones, and public pay phones. The present invention also provides a method for legally conforming to contracted franchise territory definitions executed between franchisers and franchisees by routing customer""s calls precisely to the correct legal franchisee area. Additionally, the present invention provides a method for precisely routing telephone calls based on any geographic definition including postal geography, census geography, telecommunications geography, special grid coordinate geography, and all custom geography.
The present invention provides a method for automatically routing and processing customer calls that do not meet the pre-set client protocols. This xe2x80x9cexceptions handlingxe2x80x9d process routes to a xe2x80x9clivexe2x80x9d operator who executes preset exceptions handling protocols. The present invention also provides for a method of integrating unrelated geographic information systems and database technology, telecommunications systems and database technology, postal systems and database technology, and computer technology into a common applications driven architecture. Additionally, the present invention provides a method for dynamically and instantaneously updating and integrating Client and Master Tables with no time lags. Furthermore, the present invention provides a method for automating the processing of information that is input by a customer using a customer interface that automatically routes telephone calls to customer requested destinations.
The present invention provides a Two Table system to determine the precise location of a telephone associated with a caller by utilizing the caller""s telephone number, determining a spatial key for the location, and spatially associating the key with servicing location(s) whose service areas can be defined as any size or shape. Alternatively, a caller-provided telephone number may be substituted for the caller""s telephone number, in which case the location is of a telephone associated with the caller-provided telephone number. This process starts by retrieving a telecommunications network-captured caller 10-digit telephone number with its associated spatial key from the first table. Next, record(s) with the associated spatial key are retrieved from a second table created by an automated process that mathematically establishes spatially overlapping relationships between spatial keys and service area(s) of any defined size and shape. Finally the retrieved service location dependent data is passed back to the telecommunications network to connect the caller to a selected service location or for further network processing.
Key components of the system include a caller location identifier to identify the precise spatial and geographic location of the caller, or caller-provided telephone number, with a spatial key and a routing kernel. The routing kernel utilizes a dialed number to efficiently determine which geographically defined client service areas encompass the location of the caller-provided telephone number and determines a distance and direction from the caller""s location to each of these service locations.
The present invention provides the creation and maintenance advantages of an automated table build process versus the manual process of building and maintaining a Caller Telephone Number to Service Location Telephone table used in prior systems. Automatically created client tables are built by accessing a list of service areas one area at a time to determine which spatial keys, e.g., ZIP+4s, are within each service area, calculating the distance from each ZIP+4 to the service location, writing a record for each contained ZIP+4 to a file, and sorting and indexing the file by reference to the ZIP+4 and by ascending distance.
In one Real-Time Processing embodiment, the system determines a latitude and longitude of a caller and based on this latitude and longitude, the system spatially determines a list of locations that potentially service the caller""s location. The system then performs a detailed spatial test on each potential location in the list to determine if the caller""s latitude and longitude is inside the service location""s service area. If it is inside, the distance from the caller to the service location is determined and added to the list of servicing locations. After all potential locations have been processed, the servicing list is sorted in ascending order based on distance and passed back to the application job stream for use by the telephone network in routing the call.
To facilitate efficient real-time processing, a Service Area Windows file is utilized. Each record in this file comprises a service location telephone number or ID and a latitude/longitude window determined from the latitude and longitude extremes of the radially-defined service area or the polygon-defined service area, as applicable.
A further derivative of the Two Table system (Master and Client tables) is a Three Table system which incorporates a Client Service Location table. Alternately, the Client Service Location table can be incorporated into either the One Table system or the Real-Time Process system. Thus, the Client Service Location table is an enhancement to any of these systems.
In the Two Table system, the Master Table and the Client Table are used to determine the spatial service relationship of the caller provided telephone number and the servicing locations. However, in call processing where there are multiple service locations that service a caller, there is other service location dependent data that does not have any spatial attributes, e.g., hours open, days open, product inventories, that is required for selecting the best service location for the caller. This data is most efficiently stored in a third table called the Client Service Location table. There is one record per service location in this table, which is indexed by service location identification (ID) or by service location telephone number. This table can also contain informational data, e.g., service location, name, address, general directions to a service location, a termination telephone number, a fax number and so forth, that can be spoken to the caller by a Voice Response Unit.
One aspect of the present invention includes a real-time method of communicating with a mobile device, the method comprising obtaining a spatial coordinate corresponding to a location of the mobile device, indexing a database of service area information based on the spatial coordinate to identify zero or more service locations, and sending information related to the zero or more service locations to the mobile device. The zero or more service locations may meet a predetermined criterion. The zero or more service locations may have service areas containing the location corresponding to the spatial coordinate.